System for three-dimensional rendering of electrical test and measurement signals

ABSTRACT

The system for three-dimensional rendering of signals has a computer system having acquired, streaming, or previously stored data in its memory representing multiple channels of signals in which each channel has a value which varies over a domain, e.g., time or frequency, and a display coupled to the computer. For each channel, the computer system segments the data of the channel into segments, orders the segments, renders on the display each of the segments, in which each of the rendered segments are aligned in such order along as three-dimensional perspective with gaps between adjacently rendered segments, and lines are rendered extending from each line of each one of the rendered segments to form a three-dimensional plane in the gap to the next successive one of the rendered ordered segments to form a three-dimensional continuous or discontinuous surface characterizing the channel. The surfaces of each of the channels are aligned on the display, and may be of different color, shading, and translucency, whereby channels of overlaid surfaces are viewable on the display.

CROSS REFERENCE TO RELATED APPLICATIONS

This document is a continuing U.S. non-provisional utility patentapplication being filed under 37 CFR 1.53(b), that claims priority andbenefit to, U.S. non-provisional patent application Ser. No.(12/012,617) which was filed on Feb. 4, 2008, and that is entitled“System for Three-Dimensional Rendering of Electrical Test andMeasurement Signals”, and which is also incorporated herein by referencein its entirety.

This document further claims priority and benefit to U.S. provisionalutility patent application Ser. No. (61/592,998) (Confirmation No. 7158)filed on Jan. 31, 2012, that is entitled “System for Three-DimensionalRendering of Electrical Test and Measurement Signals”, and which is alsoincorporated herein by reference in its entirety.

Priority is claimed to all of the above aforementioned patentapplications, which are each incorporated herein by reference in theirentirety.

FIELD OF THE INVENTION

This present invention relates to a system (method) forthree-dimensional (3-D) rendering of test and measurement signals, andrelates particularly to a system for three-dimensional rendering of testand measurement signals having a computer system, or othermicroprocessor based platform or system which produces three-dimensionalsurfaces representing multiple signal channels on a display inaccordance with data acquired, streaming, or previously stored in memoryof the computer system. The system is useful for three-dimensionalvisualization of the relationship between different channels of signalswith user control of three-dimensional viewing position and angle toimprove signal analysis over traditional two-dimensional display of testand measurement signals. Although the system is described herein fortest and measurement signals, other signals that are variable over adomain which either are in, or are separable into, multiple channels,may also be visualized by the computer system as 3-D surfaces.

BACKGROUND OF THE INVENTION

in the field of test and measurement, a device typically collects sampledata from one or more electrical test points over some period of time,whereby the value of a sample represents the voltage level of the giventest point at a specific point in that timeline. Samples collected inone time-contiguous sequence are commonly considered as a singleacquisition. Common tools in this field today include logic analyzersand digital storage oscilloscopes, such as those manufactured by AgilentTechnologies, Tektronix Inc., and LeCroy Corp. These systems typicallyhave a dedicated hardware platform, an attached personal computercoupled to the logic analyzer, or a digital storage oscilloscope,operating in accordance with software that can collect, store, andmanipulate the data representing sample data over one or more signalchannels, and renders such to the user in a pseudo real-time, or nonreal-time fashion on a display. These systems commonly display the datato the user on the display as a two-dimensional graph, whereby thex-axis represents time, and the y-axis value describes the voltage ofthe test point at that time for a particular signal channel, asillustrated for example in FIG. 1. The user relies on this datarepresentation to gain insight into the operation of the unit undertest, thereby allowing detection of errors, anomalies, or proof that thedevice is operating properly.

Although the typical two dimensional voltage versus time graph is usefulfor showing one sample per channel per column of pixels on the display,variations in repetitive waveforms over time are difficult to discern.Further, as devices under test become more complex arid the number ofchannels in acquisition devices available to the user rises, thesampling rates of signals by acquisition devices results in a hugeamount of data over multiple channels in the memory of the computersystem or digital oscilloscope storing such data. As a result, itbecomes problematic to render the large amount of data from multiplechannels in test and measurement systems all at once on a display to theviewer in a meaningful manner, thereby making it more difficult for theuser to visualize and identify data of interest at a particular channel,and especially among multiple channels.

Approaches to improve rendering of two-dimensional voltage time graphsare described for example in U.S. Pat. Nos. 6,151,010 and 7,216,046,which enables common persistence modes via overlays or density maps of achannel on a digital oscilloscope. A drawback of this approach is thatit is difficult to obverse patterns occurring in the channel. In U.S.Patent Application No. 2003/0006990, a digital oscilloscope displayswaveform variations over time as a surface map graph. Such rendering islimited to a single channel at a time without correlation with any otherchannels. U.S. Patent Application Publication No. 2005/0234670 describesviewing multiple channels, domains, or acquisitions simultaneously, butdoes not provide for a display of multiple channels and acquisitions (ordomains) simultaneously in a single three-dimensional view on a display.Further, the systems described in the above cited patents andpublication have limited flexibility in the organization andpresentation of the data on a display, which restricts the user'sability to quickly visualize and compare data when analyzing complexsystems.

SUMMARY OF THE INVENTION

Accordingly, it is an object of the present invention to provide animproved system for rendering test and measurement data representingmultiple channels which readily enables visualization of multiplechannels in a three-dimensional (3-D) perspective as continuous ordiscontinuous surfaces aligned on a display in which the user canobserve the relationships between different channels.

It is another object of the present invention to provide an improvedsystem for rendering test and measurement data of multiple channels ascontinuous or discontinuous surfaces in three-dimensional perspective ona display in which a user can control one or more of the viewingposition and angle with respect to the three-dimensional surfacesrepresenting the channels to move in, around, or along the surfaces inall three dimensions to visualize data of interest.

Still another object of the present invention is to provide an improvedsystem for rendering test and measurement data of multiple channels ascontinuous or discontinuous surfaces in three-dimensional perspective ona display, in which the data can represent real-time data for a deviceor system under test or stored data accessible to the system.

A yet further object of the present invention is to provide an improvedsystem for rendering test and measurement data of multiple channels ascontinuous or discontinuous surfaces in three-dimensional perspective ona display, in which the rendering may smoothly change from athree-dimensional view to an orthogonal or two-dimensional view, andvice versa

Briefly described, the present invention embodies a system having acomputer (or other microprocessor based platform or system) havingmemory with acquired, streaming, or previously stored, data representingmultiple channels of signals in which

the signals of each Channel has a value (y) which varies over time (x),and a display coupled to the computer. For each channel, the computersystem segments the data of the channel into segments, orders thesegments. renders on the display each of the segments as one or morelines in accordance with consecutive values of the data associated withthe segment, in which each of the rendered segments are aligned in theirorder in depth (z) along a three-dimensional perspective with gapsbetween adjacently rendered segments, and lines are rendered extendingfrom each line of each one of the rendered segments to form athree-dimensional plane in the gap to the next successive one of therendered ordered segments to form a three-dimensional continuous ordiscontinuous surface characterizing the channel. The surface of each ofthe channels are aligned on the display preferably for enabling a userto view relationships of two or more different channels.

For each channel surface, the edges of two or more adjacent planes ofthe surface that are located along the same two of the three-dimensionsmay appear joined to each other as a common plane, and when two planesmeet along different ones of at least two of the three-dimensions suchtwo planes may appear to meet to form an edge.

Each channel is preferably rendered as a surface having a differentcolor on the display to distinguish the channels from each other,rendered with shading (or gradients along surface depth and betweenvaried signal values) to enhance a three-dimensional view of surfaces,and/or a degree of translucency to enable viewing (and discernment) ofthe channel or different channel(s) when overlaid on the display.

The computer system segmentation of the data of each of the channels isin accordance with segment start and/or stop conditions which arepredefined or user defined. The ordering of segments for each of thechannels may be in accordance with predefined or user defined,conditions, or the order of the segments of the channel is defined byorder in which the segments are segmented. The number of segmentsrendered for each of the channels on the display may also be predefinedor user defined condition.

In one embodiment. when additional (or newer) signal data for One ormore of the channels is received by the system, the ordered segmentsrendered on the display for each of such one or more channels advancesin the depth (z) in the three-dimensional perspective as the computersystem continues to segment the data representing the signal of thechannel into segment, and then render such segments with planesextending from one or more lines thereof as an addition to the surfaceof the channel on the display. Consequently, as each of such one or morechannels advance in depth with the addition of new ordered segments, therendered segments and planes extending from one or more lines thereofassociated with the oldest segment(s) may be removed from the view,thereby providing a smoothly flowing view of multiple signal channels ina three-dimensional view whereby newer to older segments of each signalschannel are viewable as a scrolling, aging surface in a perspective ofdepth.

In another embodiment, the computer system upon detection of a specifiedcondition predefined by the user within the data of any one or more ofthe channels may adjust or add to the number of surfaces displayed byrendering new surface(s) on the display aligned with other surfaces bysegmenting and rendering in accordance with subset(s) of the dataassociated with such condition. Consequently, as new signal data isacquired the depth (z) in the three-dimensional perspective for one ormore of rendered surfaces, the computer system may adjust (add/remove)by a varying number of rendered surfaces dependent on the number ofoccurrences of a specified condition within newly acquired or previouslyacquired data.

The computer system has user controls, such as a keyboard, mouse, touchscreen surface upon the display, or the like, enabling the user tomanipulate his/her view of the three-dimensional model representing thesignal channels, such as for e.g., changing the viewing position fromwhich the rendered surfaces are oriented (or centered) such that theuser can select the angle of view of the model in, around, or along themodel in all three dimensions.

The data representing the multiple signals may be from an acquisitiondevice that is coupled by leads to a unit or device under test, wherethe acquisition device provides the data in near real-time to thecomputer system for processing into a three-dimensional view, or thedata may be provided in real-time from the acquisition device, or suchdata may be any data representing multiple signals in memory stored oraccessible to computer.

The present invention also provides a method for visualizing in athree-dimensional view having the steps of: segmenting the data of achannel into segments in which each of the segments starts at apredefined or user defined condition, ordering the segments, andrendering on a display each of the segments as one or more lines inaccordance with the values of the data associated with the segment, inwhich each of the rendered segments are aligned in the order on thedisplay along a three-dimensional perspective with gaps betweenadjacently rendered segments, and each line of each one of the renderedsegments extends to form a three-dimensional plane in the gap to thenext successive one of the rendered ordered segments to form athree-dimensional continuous or discontinuous surface characterizing thechannel. The surface rendered represents one of a plurality of surfacesrendered on the display aligned with each other in which each of theplurality of surfaces are provided h carrying out the segmenting,ordering, and rendering steps on data representing each one of thechannels.

An advantage of the present invention over traditional two-dimensionalviewing of test and measurement data is that the user is able to requestthe system to organize and display the data in ways that lead to quickcomparison and identification of problems that are not easilydiscernible via a two-dimension view. For example, take an acquisitionwith a complex repetitive (over time) pattern in it. With a conventionaltwo-dimensional logic analyzer display, as shown for example in FIG. 1,the user must either condense the time scale of the graph (zoom out intime) losing most of the detailed data, or scroll back and forth leftand right to see if any of the instances of the pattern deviate in anydetail from the expected. This is extremely difficult because there isno way to directly compare the occurrences with details on the screen atthe same time. With the present system the user can separate andreorganize each repetition of the pattern along the z dimension (depth)at a continuous or discontinuous surface viewed in three-dimensions. Byproviding any possible view around, along, or inside this model, avariation in any one of the repetitions in any channel(s) is quicklyidentifiable from the norm. An analogy to this would be searching agroup of hole-punched pages to find if, and which ones, might containholes that are misaligned. Laid out next to each other on a long table,examining the sheets to find differences could take very long orcompletely miss them. Instead, if the sheets are stacked on top of eachother, any variances can be quickly identified.

The terms “orthogonal” and “two-dimensional” or “2-D” are used hereinsynonymously. While orthogonal refers to an orthogonal projection vi CNV and is technically still a view of a 3-D representation but with zeroperspective applied, the resulting image appears to the user to be a“flat” 2-D rendering. Thus in this invention when the 3-D representationis viewed orthogonally from a perpendicular vantage point it becomesindiscernible from a 2-D graph.

Although the system and method of the present invention are described inconnection with test and measuring electrical signals in the timedomain, the system and method may operate to visualize signals in otherdomains, such a frequency domain, or from other sources. For example,the signals may be associated with or represent other forms of data suchas a stream of video for analysis of frames thereof for anomalies, orsignals from any sources that are variable over a domain (not limited totest and measuring electrical signals) which a user desires to visualizethat can be captured and stored in memory of the computer system.

This brief description of the invention is intended only to provide abrief overview of subject matter disclosed herein according to one ormore illustrative embodiments, and does not serve as a guide tointerpreting the claims or to define or limit the scope of theinvention, which is defined only by the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the features of the invention can beunderstood, a detailed description of the invention may be had byreference to certain embodiments, some of which are illustrated in theaccompanying drawings. It is to be noted, however, that the drawingsillustrate only certain embodiments of this invention and are thereforenot to be considered limiting of its scope, for the scope of theinvention can encompass other equally effective embodiments. Thedrawings are not necessarily to scale. The emphasis of the drawings isgenerally being placed upon illustrating the features of certainembodiments of the invention. In the drawings, like numerals are used toindicate like parts throughout the various views. Differences betweenlike parts may cause those parts to be indicated with differentnumerals. Unlike parts are indicated with different numerals.

The foregoing objects, features and advantages of the invention willbecome more apparent from a reading of the following description inconnection with the accompanying drawings, in which:

FIG. 1 is an example of the output rendered on the display of a typicallogic analyzer or digital oscilloscope where x axis is time and y axisis the value (amplitude or Voltage level);

FIG. 2 is a block diagram of the system of the present invention inwhich the computer system operates in accordance with software forenabling three-dimensional rendering of data representing multiplesignal channels on a display;

FIG. 3 is an example of the output rendered by the system of FIG. 2 indisplaying a three-dimensional view of four channels of electricalsignals over time as four three-dimensional continuous or discontinuoussurfaces;

FIG. 4 is block diagram of the modules of the software operating on thecomputer system of FIG. 2;

FIG. 5 is an illustration showing an example of how the sequence ofsamples used to generate segments by the segment controller module ofFIG. 4 are composite data samples representative of samples from all theindividual channels from the same point in time;

FIG. 6A is an illustration showing an example of selection of segmentsby segment controller module of FIG. 4 from a time-contiguous series ofcomposite samples based on a user selectable condition;

FIG. 6B is an example of a two-dimensional array ordering by the segmentcontroller module of FIG. 4 of segments along z from most earlier tolater of those selected in FIG. 6A;

FIG. 7 is a flow chart of the processes in software on the computersystem of FIG. 2 for the three-dimensional model generator of FIG. 4;

FIG. 7A is an example of the operation of step 38 in the flow chart FIG.7;

FIGS. 8A, 8B, 8C, and 8D graphically illustrate the processing of asingle channel by the three-dimensional model generator of FIG. 4 asdescribed in FIG. 7 from a two-dimensional array of segments of a signalchannel into a three-dimensional surface, in which FIG. 8A representsthe ordered segmented signal data in a two-dimensional array (x,z) inwhich each entry in the array has a value (y); FIG. 8B shows a graphicalrepresentation of the array as point locations in three-dimensionalperspective; FIG. 8C shows a graphical representation of linesconnecting time-adjacent points of each segment of FIG. 8B; and FIG. 8Dshows a graphical representation of planes formed from such segments toform a three-dimensional channel surface, where the points are thevertices of the planes;

FIGS. 9A and 9B show different examples of single-bit digital signaldata rendered in a two-dimension (x,y), and repeated segments of samedata rendered in three dimensions (x, y, z) in which adjacent samplesform planes having depth along the z axis;

FIGS. 9C, and 9D shows different examples of analog, or multi-bitdigital signal data rendered in two-dimensions (x,y), and repeatedsegments of same data rendered in three dimensions (x, y, z) in whichadjacent samples form planes having depth along the z axis;

FIG. 10 is another example of digital or analog signal data rendered ina two-dimension (x,y), and repeated segments of same data rendered inthree dimensions (x, y, z) in which adjacent samples form planes havingdepth along the z axis;

FIG. 11 shows a schematic illustration of multiple three-dimensionalchannels as ordered surfaces rendered in a single view on a screen ofthe display of FIGS. 2 and 4 in which the surface characterizing each ofthe channels are aligned with each other with a common time base (x) tofacilitate viewing of the relationship of channels with respect to eachother; FIG. 1 illustrates communication between an eye contrastsensitivity test (CST) measurement device and a health correlationassessment service.

FIG. 12 shows an example of four three-dimensional channel surfacesrendered in a view on a screen of the display of FIGS. 2 and 4 havingnon-signal objects of three-dimensional planes extending through thechannel surfaces to illustrate events in signals occurring at the sametime along multiple signal channels, and measurement and grid markersassociated with time;

FIG. 12A is an example of the output rendered by the system of FIG. 2 invisualizing a two-dimensional view of four channels of electricalsignals over time where three of the channels are digital and one of thechannels is analog:

FIG. 12B is an example of the output rendered by the system of FIG. 2 invisualizing a three-dimensional view of same four channels of FIG. 12A;

FIG. 13 illustrates the use of lower resolution sections of a renderedview of multiple signals channels on a display of FIGS. 2 and 4 as theview extends in virtual distance from the viewer;

FIGS. 14-20 show different representations of a three-dimensional viewof multiple channels in which the user changes the viewing position,angle, or scale;

FIGS. 21-28 show different representations of a three-dimensional viewof multiple channels changing from a three-dimensional perspective viewof FIG. 21 to a two-dimensional or orthogonal view of FIG. 28 withsmooth transitions at intermediate representations of such view tovisualize smooth transition at FIGS. 22-27;

FIGS. 29A-29C are collectively a diagram showing the geometric methodfor smooth transitioning on the display from a three-dimensionalrendering to a two-dimensional or orthogonal view, as shown for examplein FIGS. 21-28 to enable smooth transitions of the display by the modelvisualizer of FIG. 4;

FIGS. 30A-30B are collectively a flow chart of the process in softwareon the computer system of FIG. 2 for smooth transitioning on the displayfrom a three-dimensional rendering to a two-dimensional or orthogonalview, as shown for example in FIGS. 21-28;

FIG. 31 is a ray diagram to illustrate the geometry for reorienting ofthe rendered three-dimensional model of multiple channels to a viewperpendicular to a user selected point of interest by the modelvisualizer of FIG. 4;

FIG. 32 is a flow chart of the processes in software on the computersystem of FIG. 2 for automatic reorienting of the renderedthree-dimensional model of multiple channels to a view perpendicular toa user selected point of interest by the model visualizer of FIG. 4;

FIG. 33-43 show different representations of a view of athree-dimensional view of multiple channels smoothly reorienting to asview perpendicular to a user selected point of interest, and thentransitioning to a two-dimensional or orthogonal view to performin-depth analysis of the data and timing around the event;

FIGS. 43-49 show different representations of an orthogonal view of athree-dimensional view of multiple channels as the viewpoint smoothlyrotated around a point of interest from a top-down view to a traditionalfront-on view;

FIG. 50 shows an example of a control panel provided along the screen onthe display of FIGS. 2 and 4 by the user interface module of FIG. 4providing labels of the signal channels being rendered, the currentactivity of each signal channel, and current view and angle;

FIGS. 51A and 51B are similar to FIGS. 6A and 6B, respectively, in whichthe selection criteria of segments result in overlap and gaps of thesamples within the segments in order to more generally showsegmentation;

FIGS. 52-55 illustrate segmentation of signal data by the segmentationcontroller module of FIG. 4 to form a two-dimensional array of orderedsegments based on different user defined parameters and thecharacteristics of the signals;

FIG. 56 illustrates the addition of a reference segment at thesegmentation controller module of FIG. 4 that may be specified by theuser and generated for inclusion in the set of segments;

FIG. 57 illustrates an example of the reordering of a two-dimensionarray of segment on conditions such as values in the data originalsource, or acquisition order by the segmentation controller module ofFIG. 4; and

FIG. 58 is the display of FIGS. 2 and 4 of a three-dimensional view of asampled live or recorded video image streaming from a unit under testalong with other signals relevant to analysis in the system of thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION

Referring to FIG. 2, the system 10 of the present invention has acomputer system 12 with software in accordance with the presentinvention for rendering on a display 13 coupled to the computer system.The computer system 12 is connected to an acquisition device 15, such asa LeCroy Model No. MS-250 or MS-500 Mixed Signal Oscilloscope, or otherlogic analyzer or digital oscilloscope, receiving electrical signalsfrom a device (or unit) 16 under test via test leads 17. For purposes ofexample, three leads 17 are shown for providing three electricalsignals, but other number of leads may be used depending on theacquisition device 15. The acquisition device outputs digital data tothe computer system 12 representing multiple channels of electricalsignals received from leads 17, where each channel represents a signalfrom one of the leads 17 having amplitude or value over time. The analogelectrical signals are converted by the acquisition device 15 intodigital data format.

The computer system 12 stores the received data in its memory (RAM), andmay also store the data in a file in memory (hard drive or opticaldrive) of the computer system for archival storage or for later non-realtime rendering of the signals by the computer system on display 13. Thecomputer system 12 has hardware and/or software enabling acquisition ofdata from the acquisition device 15 and storage of such data in itsmemory, as typically provided by the manufacturer of the acquisitiondevice 15 for operating with the acquisition device.

The computer system 12 may represent a personal computer (PC) system,work station, laptop computer, or other microprocessor based platform,which is coupled to user controls 13 a, such as a keyboard, mouse, touchscreen surface upon the display, or combination thereof, enabling theuser to control the computer system 12 operation. Such user controls 13a may be interactive with software on the computer system 12 to providea graphical user interface on display 13. Although the system 10 of thepresent invention includes computer system 12, display 13, and usercontrols 13 a, in which computer system 12 has a graphics and video cardand software for operating same for interfacing and outputting todisplay 13 as typical of a PC based computer system, the system 10 mayhe part of an acquisition and display system 11 with acquisition device15.

The digital data representation of channels of electrical signalsreceived in memory from the acquisition device 15 is processed by thecomputer system 12 for rendering on display 13. An example output ondisplay 13 is shown in FIG. 3 having four signal channels eachrepresented by three-dimensional (3-D) surfaces 18 to provide athree-dimensional model, in which measurement grids (or scale) 20represent the time base (x), and the heights along each surface 18 isrepresentative of amplitude or value (y) of the signal. Although the 3-Dview is illustrated as being along the entire screen of display 13 inFIG. 12, the view may be in a window on display 13 and may have acontrol panel of FIG. 50.

As will be described in more detail later, for each channel the computersystem 12 segments the data in accordance to predefined or user definedstart and/or end conditions of each segment, orders the segments inaccordance to predefined or user defined conditions, and renders on thedisplay each of the segments as line(s) having variations in height (y)in accordance with the values of the data of such segment in their orderin depth (z) along a three-dimensional perspective (x, y, z) with gapsbetween adjacent segments, and then from each of the segments extendsthree-dimensional planes from each of the line(s) to the next segment indepth (z).

For example, the third segment 19 of the topmost surface 18 is denotedby lines which varies (falls and rises) in height (y) along time (x),and for each part of such lines having the same height (y) athree-dimensional plane 21 is extended in a gap 19 b to abut lines ofthe next segment 19 a in depth (z). Each segment of a channel on thedisplay forms one ribbon of surface 18, and the combination of suchribbons forms a continuous or discontinuous surface 18. In one example,depth (z) in the perspective of a channel surface 18 relates to previousacquisitions of the channel, thereby enabling a view where a user cananalyze the relationship of two or more different channels by theirrespective surfaces 18 along the relative time base (or scale) 20 over aseries of independent acquisition of such different channels. As will beshown below in FIG. 12, the user may add three-dimensional planes atparticular times along the time base through different channel surfaces18 to assist in the analysis.

The data representing multiple channels of signals may be from theacquisition device 15 in real-time (e.g., streaming), but may also oralternatively, represent a mathematical simulation, or data stored filein memory (hard drive, optical drive, or other memory storage device) ofcomputer system 12 that is not acquired in real-tine from acquisitiondevice 15, volatile (RAM) memory or FLASH drive, or any other system oracquisition device 15 capable of producing a set of acquired signal dataother than from acquisition device 15 that is connected to computersystem 12. This enables system 10 to be portable or stand-alone as wellas part of a complete acquisition and display system 11 with acquisitiondevice 15.

Referring now to FIG. 4, the software operating on the computer system12 for generating the three-dimensional surfaces 18 is shown havingmodules or software components 14, 22, 24, 26, acid 28: user interface14, segment controller 22, three-dimensional model (3-D) generator 24,model enhancer 26, and model visualizer 28. The model visualizer 28interfaces with software and/or hardware 32 of the computer system 12 torender and animate the model on display 13 to produce the desired scene,while the user interface 14 allows the user to control the visualizedoutput on the display by changing parameters to modules 22, 24, 26, and28 in response to user input from user controls 13 a. Each of moduleswill now be described.

The segment controller module 22 receives data 17 a representing one ormore separate channels of signals from acquisition device 15 and placesit in a historical data store in memory of the computer system 12. Thesegment controller 22 then uses the set of new and/or historical data togenerate individual time-contiguous segments containing samples for eachof the channels and arranging them into a two-dimensional array of dataat the same time. The combined segment array of multiple channels may beconsidered a matrix. The exact format of such data is not restricted toa single representation.

Segmentation is performed on all available channels in parallel so as tomaintain all time relationships. As such, the samples used for purposesof segmentation, and the samples in the generated segments, may beconsidered composite samples whereby the composite sample contains thecomplete data of each of the included channels samples from that samepoint in time. This is represented in FIG. 5 where Channels 0 to M(C0-CM) each containing samples 0 to N (C0S0-CMSN) containing anamplitude or value (y) along time (x) are operated upon by the segmentcontroller module 22 as a set of composite samples S0-SN (e.g. S0contains the data of C0S0-CMS0).

A representation of the segmentation of data of multiple channels intosegments is shown in a basic case in FIGS. 6A and 6B and in a moregeneral case in FIGS. 51A and 51B. The data for each channel may besegmented along user selectable conditions such as: consecutive timeslices, reoccurrence of a pattern, specific start and/or stopconditions, acquisition source, different acquisitions, or combinationsthereof. For example, the user selectable condition may be a pattern,such as a switch from low to high or high to low, or a particularsequence of data values. The segments may be uniform or non-uniform inlength (x).

FIG. 6A shows an example of segmentation of a set of composite samples,containing data for one or more channels, into five segments labeled Ato E in length (time) in FIG. 6A, in which one or more amplitudes orvalues (y) are shown by boxes along time (x). A two-dimensional array ofthis data ordering the segments A-E of FIG. 6A in depth z is shown inFIG. 6B. As more data of the represented channel(s) is acquired it maybe segmented and added to the bottom the array shown in FIG. 6B.Although the segments are shown non-uniform in FIGS. 6A and 6B thesegments may also be of uniform length (time). The organization of thearray in two dimensions may be different than shown, and the particulardata structure and organization is not limited to that shown in FIG. 6or 51. Other segmentation of signals will be discussed latter inconnection with FIGS. 52-57.

To setup the system 10, the user interface 14 provides the user with oneor more screens on display 13 that enables the selection of parameters,such as selecting which of the available channels the user desires toview, the layered order of such channels, the maximum number of segmentsof each channel to be extracted and rendered in the view (e.g., 1 to100), and start and/or stop conditions by which each channel will besegmented, such as described above. The user can further select, via theuser interface 14, the color of each channel to be rendered, shading tobe applied, and the degree or level of translucency of each channel.

If desired, the user can also add non-signal objects to the view such asone or more reference markers (at chosen times (x and/or z)),measurement grids and reference planes (at preset times (x and/or z)),and furthermore can adjust the color and translucency of such additionalobjects. These parameters may be set to predefined default levels if theuser does not wish to select user defined parameters. The user interface14 may use graphical user interface elements, such as menus, inputfields, and the like, typical of a software user interface. Other meansfor entry of these parameters may be used, such as buttons or knobsalong a housing having the display 13, where housing includes thecomputer system 12, to select one or more of these parameters with orwithout a graphical user interface on display 13.

First, the two-dimensional array 23 of data containing samples composedof one or more channels, is input to the three-dimensional modelgenerator 24 (FIG. 4) to transform the data into a digital 3-D signalmodel. The operation of three-dimensional model generator 24 is shown inFIG. 7.

Based on user or default settings, the computer system 12 selects adepth (number of segments) of an input buffer in memory of computersystem 12. The three-dimensional model generator 24 separates the 2Darray of composite samples into individual 2D arrays (step 34), one foreach channel and then filters out (removes) any undesired channels (asspecified by predefined or user defined conditions) not to be displayed(step 35). This reduces the amount of data that must be processed by thesubsequent functions to only that requested by the user. The modelgenerator 24 uses the number and order of the channels, and the maximumnumber of segments, as selectable by the user via user controls 13 a touser interface 14.

The sample data from individual channels are individually located withina y portion of the three-dimensional space. For each N number of 2Darrays of channel data steps 36-44 are performed within the y portionassigned by the computer system for that channel. Based on the x and zindices of each sample within the array for that channel, a respectivelocation on the x-z plane of the model is calculated (step 36). It isvery common when sampling a test point to have a series oftime-contiguous samples of the same value. Therefore, in a preferredembodiment the process reduces the workload of the system by eliminatingextraneous points that do not describe changes in the signal level overtime (step 38) as is shown in the example FIG. 7A. This is done so faras is possible without any loss of information. In the FIG. 7A examplevertices or points between vertices or points 37 a and 37 b, and 37 cand 37 d, are removed as indicated by arrows between such vertices. Thusstep 38 provides for optimization, whereby extraneous vertices that donot represent change in the value of the signal are removed forefficiency in processing and rendering. Although preferable, step 38 mayoptionally he removed.

From the remaining planar points a y value is then calculated for eachto create a location in 3-D space (step 40). The y value relies on twocomponents. Each channel is given a minimum and maximum y value in themodel space within which all related samples will he located. Thespecific values for this y range are for presentation and claritypurposes to provide separation from the other channel surfaces 18 whenrendered. In a preferred embodiment these are configurable by the user,as desired, and would not preclude the ability to overlap the locationsof separate channels in the same space. The second component ingenerating a y value for each sample is the stored value associated withit, e.g., voltage of the given test point at that time. The final yvalue for the point is calculated as a location within the channel's yrange which is proportional to that samples value in regards to themaximum value that can be represented for that channel based on theinput source. A representation of the x and z location of each entry inthe array of FIG. 8A, and the height y at such location, is shown inFIG. 8B.

Those 3-D points that are contiguous in time for each given channel arethen connected by lines (step 42). In one specific embodiment this isaccomplished by using vertical and horizontal lines to generate adigital representation by forming right angled ‘steps’. In anotherembodiment direct angular lines are created to represent interpolationof the signal value between samples. This is useful for example if thesource was an analog channel. Furthermore, multi-bit samples orcombinations of multiple channels may be represented by bus symbolsrather than a basic line. In any case, the user via the user interface14 may select the desired forth of presentation. A representation of thelines connecting contiguous points in time for each ordered segment 19is shown in FIG. 8C for the example of FIGS. 8A and 8B, in which eachpair of adjacently rendered ordered segments 19 is rendered with a gap19 b (or space) between them for rendering of planes as will bedescribed below.

While connected lines are useful in a two-dimensional graph, they areextremely difficult to understand in a three-dimensional environment asa line is not a three-dimensional object and has no volume. To providedepth, lines are extruded or extend in the z dimension (step 44) in thethree-dimensional perspective to form planes 21 along gaps 19 b, wherecommon y values contiguous in time (x) along the same segment form aplane 21 (x, z), and different consecutive y values in time (x) alongthe same segment form an orthogonal step (y,z) or a sloped plane 21(x,y,z). The planes 21 are extruded in depth (z) such that the plane 21for each segment 19 meets up with the following segment in depth z,thereby joining to provide a three-dimensional synthesized surface 18for each channel that is easily discernible from different perspectivesas shown in FIG. 8D.

Each segment 19 of a channel on the display once rendered one or morelines along x,y axes, with lines along the z axis forming planes 21extending there from represents one ribbon of a surface 18. As shown inFIG. 8D, common y values contiguous along the same segment 19 and amonga series of ordered segments 19 along the x axis may form (or appear orrendered as) a common plane 21 a (x, z), and different consecutive yvalues along the same segment which are common among a series of orderedsegments 19 may form a common orthogonal step (plane) 21 b (y,z) or asloped plane 21 (x,y,z). In other words, the edges of two or moreadjacent planes of a channel that are located along the same two of thethree-dimensions (x, y, z) they may appear joined to each other as acommon plane, and when two planes meet along different ones of at leasttwo of the three-dimensions such two planes appear to meet to form anedge.

For the purpose of illustration, surface 18 in the example of FIG. 8D isdiscontinuous between some of the planes 21 providing a discontinuoussurface (see for example opening 21 c between five rendered planes, oropenings 21 d and 21 e). Depending of the values of the segments beingrendered, the surface 18 may be continuous. Further a discontinuousthree-dimensional surface 18 may optionally be made continuous byrendering additional three-dimensional planes along suchdiscontinuities, such as in openings 21 c, 21 d, and 21 e, and otheropenings where no rendered planes have edges adjacent to each other.

Other representations of surface 18 synthesis from data are shown forexample in FIGS. 9A-9D, and FIG. 10. As shown for example in FIGS. 9Band 9D, the surface may be form angular planes, or from a combination ofangular and non-angular planes. This method is particularly useful whenthe given channel being represented is derived from analog data insteadof digital.

Performing the process of FIG. 7 on each of the channels in parallelcreates a series of surfaces 18 which, distributed on the y axis,combine together to form a layered three-dimensional view, as shown forexample in FIG. 11. In the resulting three-dimensional view, therepresentations of same-time samples from different channels are fixedrelative to each other in the x and z dimensions. Thus, the timerelationships amongst elements of the channel surfaces 18 remain clearwhile still allowing the simultaneous display of multiple channels tothe user. Furthermore, once the view of the layered surfaces 18 is shownon display 13, the user controls the three-dimensional perspective, aswill be shown later, to enable the user to view down the z axis of thesurfaces 18 for each channel and thereby visualize variation patternsover a deep quantity of acquisitions or cycles (i.e., segments up to themaximum number of segments specified by the user).

In a preferred embodiment, a history FIFO of acquisitions, or datasegments, can be used to place new data at the front of surfaces 18 andfluidly “scroll” older acquisitions (or data segments) away from theuser along the z axis in real-time. In other words, when each channelhas additional (or newer) signals, the ordered segments 19 rendered onthe display 13 for such channel advances in the depth (z) in thethree-dimensional perspective as the computer system 12 continues tosegment the data representing the signal of the channels into segments19 which are then added to the surface 18 of such channel as a newribbon to such surface 18.

Consequently, as each channel advance in depth with the addition of newordered segments, ribbons of the surface 18 associated with the oldestsegments at the back of the surface 18 (i.e., greater than the maximumnumber desired by the user) may be removed from the view. Thus, asmoothly flowing view of multiple signal channels in a three-dimensionalview is provided, whereby newer to older segments of each signal channelare viewable as a flowing surface 18 in a perspective of depth with thesurface modifying its shape as values (v) of the signal changes amongconsecutive ordered segments.

This creates an advantageous effect whereby the user can watch trendsand cycles in signal timing by taking a perspective view down the depthof the three-dimensional view. Further, data segments which form anarray 23 for one or more channels may be stored before, after, orconcurrent with rendering on display 13 in memory of computer system 12or external memory device accessible for storage by computer system 12,and thereby provide an archive for later display of such segments foranalysis.

In another embodiment, the three-dimensional model generator 24 maygenerate multiple three-dimensional models 25 a views in parallel. Theseadditional views are generated from decimated copies of lowerresolutions of input data 17 a by segment controller 22 as array data 23a, and result in simplified versions 25 a of the base model 25. Theseare then used later on by the model visualizer 28 to improve renderingefficiency and increase the volume of data that can be displayed at oncewhile retaining responsiveness to the user and higher update rates ofrenderings on the display 13, as will be described further below.

Thus, the 3-D model generator 24 receives the two-dimensional array ofdata 23 for one or more signal channels, and translates it into athree-dimensional model representation where the signal voltageamplitude and time are used to give each sample volume and location inthree dimensions (x, y, and?). This produces a complete model whereindividual channel are viewed as 3-D surfaces 18 layered relative toeach other in three-dimensional space over a common time (x and z).

The resulting model 25 is a record in memory (RAM) of the computersystem 12 for all the channels to be rendered in a view of vertices inx, y, z space. For example, the record has for each channel the verticesof each segment (such as represented by FIG. 8B) in an order (e.g., leftto right) defining lines between vertices (such as represented by FIG.8C), and the vertices in an order (e.g., top to bottom) defining theplanes or surfaces between segments (such as represented by FIG. 8D).

Once the input sample data has been generated into a three-dimensionalmodel 25 (such as shown for example in FIG. 11), the model is enhancedto improve its usefulness to the user by the model enhancer 26. In apreferred embodiment most if not all of these enhancements are under thecontrol of the user by controls 13 a to enable and configure as bestsuits their needs via the user interface 14. In order to clearlyidentify channel surfaces 18, a different color is applied to eachsurface 18, as selectable by the user via user interface 14.Furthermore, the area of planes 21 of a ribbon between adjacent samplesis applied with a gradient, where the shade of the color approached ateach sample point represents the voltage value at that same point.

In this way variances in voltage and samples of the same value becomemore visually apparent. Thus, height and/or one or more of color orintensity of each surface 18 is associated with values of dataassociated with the surface. Each surface 18 thus preferably varies inone or more characteristics e.g., color, intensity, shading or gradient)to distinguish the surfaces representing different channels from eachother, to distinguish different planes of the same surface 18 from eachother, and to distinguish the area of each planes from each other ofsame surface 18.

In addition to color, the user, via the user interface 14, is able toconfigure surfaces in the model to be applied with varied degrees oftranslucency. This, combined with a 3-D vantage point, enables viewingone surface 18 through another of the same or through multiple layeredsurfaces 18, and provides the ability for one pixel on the screen togive the user information on the value of multiple samples at once.Viewed from above and down along the direction of the y axis thisability can be used to make asynchronous data between two or morechannels instantly apparent. Such capability is not possible with theconventional logic analyzer software for displaying two-dimensionalsignals of multiple channels.

Further, individual samples can also be further enhanced in the 3-Dmodel with particular color, translucency, outlining, the appearance ofglowing, or other special graphical characteristic effects as to providefor highlighting of desired points. These enhancements are applicablebased on a specific sample, or samples meeting given user criteria suchas value. Furthermore, sequences of samples can similarly be highlightedbased on a certain sequential pattern or variance in either the x or zdimensions. The user controls 13 a to interface 14 may enable the userto select desired value(s) or patterns within a channel to behighlighted by desired graphical characteristic(s).

To facilitate usefulness for analysis, non-signal objects are added tomake the 3-D model. These objects include references planes 46 a, 46 b,and 46 c that give scale and alignment information about the samples oridentify special locations, such as grid planes 46 a, measurementmarkers 46 b, trigger points 46 c, and scale 20. The reference planesmay extend through the channel surfaces 18 along the entire depth (z) ofthe view or less than the entire depth, as shown for example byreference planes 46 b.

Furthermore these non-signal objects 20, 46 a, 46 b, and 46 c can becustomized by the user via the user interface 14 with varying colors andtranslucencies so as not to be lost amongst or hide the signal databeing shown around them. An example of the 3-D model of surfaces 18 on ascreen of display 13 is shown for example in FIG. 12 having verticalreference planes 46 a, 46 b, and 46 c with four surfaces 18 representingdata of different channels. For purposes of illustration, the 3-D modeland their associated surfaces 18 shown in the figures are shown ingray-scale, but typically each surface 18, scale 20, and referenceplanes 46 a, 46 b, and 46 c are of color as described herein.

As mentioned earlier channels may be representative of digital or analogsources or a combination thereof. To accommodate the given source domainchannel surfaces 18 may be rendered in an analog form or digital formbased on user selection. An example rendering of mixed analog anddigital channels in a front-on orthogonal view is shown in FIG. 12A,while an example of mixed analog and digital channels withthree-dimensional perspective is shown in FIG. 12B. Fundamentally thereis little difference between analog and digital herein and all of thefeatures described herein apply to both forms.

The earlier described record defining model 25 is modified by modelenhancer 26 to add a number or code) for each vertex defining its colorand translucency level. For example, this number may have four values(R, G, 8, α), where the first three define the R (red), G (green) and B(blue) values, respectively, that describe the color (or color mixture)of the vertex, and the fourth byte, is a value (α) is the level oftranslucency of that vertex of the color in accordance with its R, 8, G,values. For example a completely opaque pure white vertex can bedescribed as (1.0, 1.0, 1.0, 1.0) while a 50% transparent pure blackvertex is described as (0.0, 0.0, 0.0, 1.0) and a slightly transparentyellow vertex can be described as (1.0, 1.0, 0.0, 0.9). Further added tothe record are vertices defining the non-signal objects (e.g., referenceplane(s) 46 a, 46 b, 46 c, and scale 20) and their color andtranslucency values.

The modified record represents a 3-D display model 27 which is used bymodel visualizer 28 to produce rendering instructions 29 representativeof the visualization of the model 27 to a software/hardware renderer 32for output on display 13 and thereby produce the desired visual image.First, the visualizer 28 performs scaling of the model 27 in any or allof the three dimensions x, y, z based on predefined or user-definedconditions. This allows the user to condense each axis independently,altering the proportions and the amount of data that is displayed on thedisplay 13.

Next, the visualizer 28 takes into account the user's simulated positionin the 3-D environment and their viewing angle to determine the portionof model in view. The user controls 13 a via the user interface 14enable the user to input the desired scaling in x, y, z and select anychange of simulated user position and viewing angle within or around thethree-dimensional model. The change of simulated user position may beperformed using buttons on the user interface's keyboard that is coupledto the computer system 12 or clicking (pressing) a mouse button toselect where on the image of the 3-D model will be the new viewingposition, or clicking down a mouse button and holding down that buttonwhile dragging the image to move the position or angle of view about thecurrent viewing position or angle, and releasing that button when thedesired view is obtained. Other means of using the user interface 14 mayalso be used to select or change viewing position and angle, includingto top views, bottom views, side views, and any other angular view therebetween, as desired by the user to view the relationship between two ormore channels, or patterns in a single channel.

After the model 27 (FIG. 4) is scaled and the viewing and positionupdated to the last viewing position and angle in memory of computersystem 12 (or a new viewing position or angle as selected by the user),the model visualizer 28 produces rendering instructions 29 for the viewto be displayed. The rendering instructions 29 are in a format and codedefined by the three-dimensional software/hardware renderer 32 thatreceives such instructions. The three-dimensional software/hardwarerenderer 32 is a component of the computer system 12 and has graphicslibraries and (optionally) 3-D acceleration hardware to output athree-dimensional image in accordance with such instructions.

Such software/hardware renderer 32 enables a fast frame rate andthree-dimensional rendering effects, and is often used for video gamesrendering on personal computers, but has not been utilized in the fieldof display of test and measuring data. Examples of commerciallyavailable three-dimensional software/hardware renderers 32 arecommercial video accelerator hardware/software, such as an ATI Radeon orNVidia GeForce series graphics cards and their drivers. The software ofmodel visualizer 28 uses widely available OpenGL software libraries forinterfacing to the card. Alternately, the Microsoft DirectX standard orother video graphics library and/or hardware may be chosen.

When using such a library there are common programming techniques thatshould be applied to achieve better performance. These techniques arewell documented in the field of computer graphics and are described in.for example, the publications: OpenGL Architecture Review Board, DaveShreiner, et al. OpenGL Programming Guide: the official guide tolearning OpenGL, version 2. 5th ed. Boston, Mass.: Addison-Wesley, 2006,or OpenGL Architecture Review Board, Dave Shreiner. OpenGL ReferenceManual, the official reference document to OpenGL, version 1.4. 4th ed.Boston, Mass.: Addison-Wesley, 2004.

Preferably, the model visualizer 28 logically separates the model 27into sections in the x and/or z dimensions. Based on the viewing angleand virtual distance from the viewer, it then determines each individualsection of the view to be displayed and chooses, out of multipleresolution (i.e., decimated) models produced by the 3-D model generator24 and enhanced by model enhancer 26 which resolution model is mostappropriate for each section. Decimated model sections are used when thesize on display 13 (related to perspective distance) they are to berendered at is incapable of effectively displaying additionalinformation in the more detailed version of the model due to the pixelresolution (or other limitation) of the display. In this way, the modelvisualizer 28 is able to simplify the model without information loss tothe user and still greatly decrease the amount of data that must berendered.

For example, a lower resolution representation of arrays 17 a areproduced by reducing the number of samples in time (x) for each orderedsegment, such as by collapsing the set of y values for consecutive Nnumber of samples in the arrays 23 a to represent a single y range (maxand min) value pair (where N increases as resolution lowers). Each lowerresolution representation of the array data 23 a is operated upon bygenerator 24 to produce model 25 a and then enhancer 26 to providedifferent models 27 a of model 27 of different resolution for visualizer28. The visualizer 28 selects the vertices of records for each sectionof the final view from one of these models 27 and 27 a in accordancewith time (x and/or z) as the virtual distance from the viewer increasesand required resolution reduced. An example of this is shown in FIG. 13showing three different versions 51, 52, 53, labeled Sections A, B, andC, respectively of the same original data 50 for two signal channelsalong different parts of a rendered view 49. Although three sections areshown, there are more sections between Sections A, B, and C of differentresolution levels of the signal channels.

Model visualizer 28 described above operates asynchronously. This isbecause the other components 24 and 26 focus on producing a 3-D modeland therefore only need to operate when new data is input to the systemor the user requests a change in their operation. In addition to whennew data is input to the computer system 12, the model visualizer 28also operates whenever a new image of the 3-D model must be output tothe display 13, such as when the user wants to change the view. Thisapproach also allows the model visualizer 28 to also implement animationprocesses to improve the user experience without requiring continualuser input or new data models to he generated.

The user interface 14 facilitates the user's interaction with system 10by user controls 13 a. Once a view, such as shown in FIG. 12 or 12B forexample, is rendered on the display 13, the user via the user controls13 a through user interface 14 has freedom of movement within and aroundthe 3-D view of surfaces 18 to select the viewing position and angle ofview, as described earlier. This feature is comparable to that normallyfound in a video game and includes mouse and keyboard control foradjusting the user's X-Y-Z positions, yaw, pitch, and roll, but is notpresent in conventional logic analyzer or oscilloscope software. Thisgives the user the ability to view the data from any location around orinside the model quickly and intuitively.

A series of examples of the movement of a view of surfaces 18 a, 18 b 18c, and 18 d is shown in FIGS. 14-20. Starting from an original view,such as that shown in FIG. 14, the user can perform the followingcontrols using the user interface's mouse: hold the left mouse buttonand drag left, right, up, and down to move their view position left,right, up, and down in relation to the current viewing angle (FIG. 15shows an example moving viewing position up and left from FIG. 14);scroll the mouse wheel forward and back to move the user's viewpointforward or back (FIG. 16 shows an example of moving viewing positionforward from FIG. 14); hold the right mouse button and drag left, right,up, and down to change their viewing angle (yaw and pitch) (FIG. 17shows tilt of the viewing angle to the right and down slightly from FIG.14); and hold down the middle mouse button and drag left or right tochange the 3-D model's scale in x lesser and greater respectively, aswell as down and up to scale the view in y lesser and greaterrespectively. An example of reducing the x scale from FIG. 14 is shownin FIG. 18.

The scaling axis' change for the middle mouse button drag controls whenthe user's current pitch and/or yaw angle is greater than 45 degrees.This correlates the adjustment to the model to the predominant directionthe user is facing. For example, when the view is greater than 45degrees down, dragging the middle mouse button up and down will nowscale the z dimension of the model instead of the y dimension, as shownin the before and after shots in FIGS. 19 and 20. The surfaces 18 a, 18b 18 c, and 18 d can move in and out of view on display 13 as desired bythe user as shown in FIGS. 14-20. The above described use of the mouse'sbuttons and wheel are exemplary, other mouse buttons, keyboard buttons,or components of the user interface may be used to perform similar oradditional functions.

Typically a 3-D view is rendered to a 2-D display, such as a CRT or LCDmonitor with perspective; meaning that objects are drawn smaller astheir virtual distance from the observer increases. In the case of logicanalyzer display software this is not always preferable as it can becomedifficult to do certain time comparisons of signal data in perspective.This is part of the reason why traditional logic analyzers display theirdata, including historical data layering, in 2-D graphs. To account forthis in system 10, the user may control the amount of perspective usedby the model visualizer 28 in drawing the image. This enables the userto switch to and from a completely orthogonal (non-perspective) viewwhich can mimic a traditional two-dimensional (2-D) logic analyzerdisplay when viewed from a perpendicular front view. The user may togglebetween views via user controls 13 a buttons on a keyboard, or selectionon menu, button, or other graphical element on the graphical userinterface 14 provided on display 13.

To avoid user disorientation in switching between perspective (3-D) andorthogonal (2-D) views, the model visualizer 28 enables smoothtransitions between perspective and orthogonal views (or modes) and backagain, thus allowing the user to readily understand the change.Representative frames of this animation are shown in the eightperspective to orthogonal transition screenshots of FIGS. 21-28, whereFIG. 21 has the most perspective of surfaces 18 e, 18 f, and 18 g andFIG. 28 is a fully orthogonal view thereof as traces 18 e″, 18 f″ and 18g″, respectively, and the change there to denoted by version 18 e′, 18f′ and 18 g′ through FIGS. 22-27. The end result is a 2-D graph wherethe ordered segments of each channel surface 18 that had been presentedin depth extending away from the user, now appear as flatly overlaid oneach other in the 2-D graph. The opposite takes place when changing froma 2-D orthogonal view of a 3-D perspective view. Other number of stepsmay be used to enable smoother transitions between 3-D and 2-D views ondisplay 13.

The smooth transition between 3-D and 2-D views is animated by the modelvisualizer 28 and relies on basic geometric calculations illustrated inFIGS. 29A-29C which are applied to 3-D computer graphics by the modelvisualizer 28. These methods provide a way to fluidly change the amountof perspective without dramatically changing the current area and focusof channel samples visible within the display model 27 by adjusting boththe viewing position and field of view steadily during the transition.This allows the perspective change to occur without disorienting theuser or causing undesired side-effects on the resulting render ondisplay 13. A software flow chart of the steps performed by the modelvisualizer 28 to achieve this automatic animation is shown in FIGS.30A-30C. The result is a comfortable and intuitive feel to the user whenswitching back and forth between these 3-D and 2-D rendering modes.

For example, when the user wishes to change a 3-D perspective view intoa 2-D (orthogonal) view they will first select a point of interest(denoted as POI) via the user controls 13 a for the user interface 14 ondisplay 13 (step 54). This POI may be any point representative of a datasample or object in the current 3-D rendered view on the display. Theuser then presses a button on the graphic user interface 14 in thescreen on display 13 or a keyboard button to initiate the change toorthogonal view (step 55). The model visualizer 28 on computer system 12then calculates virtual distance in 3-D space between the POI and theuser's current viewpoint or “camera” (step 56). This distance isconsidered dA. The computer system then determines the angle that ishalf of the current vertical field of view (step 57). This value isdescribed as fA, also shown in FIGS. 29A-29C, and is maintained in thememory of computer system 12.

The computer system then calculates the virtual spatial distance of halfof the vie (visible perpendicular plane area) height at the POI (definedas H) using the formula H=tan(fA)×dA (step 58). Next, the computersystem uses a discrete number of steps, called N, for the transition toinitialize the current step count, called S (step 59). In this example Nis 50, but it could be any number greater than or equal to 1. Greaternumbers result in a smoother, but longer transition. Additionally adiscrete time duration could be used instead, such that the transitionoccurs over a given time period independent of the number of transitionframes that can be rendered by any given system during that time.

At this point the model visualizer 28 is ready to begin the transitionprocess. The computer system then updates the current vertical field ofview angle so that half of that angle is equal to (S/N×fA)2 where theresult is called fB (step 60). The horizontal field of view is alsoalways updated when the vertical field of view changes such that theirratio remains constant. This ration may be any value predefined by thesoftware. Squaring the stepped angle is used to provide a more lineartransition from the user's perspective due to the trigonometricfunctions. However, any number of other mathematical functions could beutilized to create somewhat varying effects.

Next the computer system calculates a new virtual distance between thePOI and the user's viewpoint called dB which is equal to(dA×tan(fA)/tan(fB)) and updated in the systems memory (step 61). Theviewpoint is moved directly backwards in 3-D space based on its currentview direction so that it is at the computed distance. With the newfield of view and viewpoint location values calculated, the modelvisualizer 28 is then ready to render a new scene of the 3-D model (step62).

Afterwards the software decrements S by 1 (step 63). The new value of Sis analyzed to see if it is still greater than 1 (step 64). If it is,then the process repeats back to step 60 and continues on again throughsteps 60-64. Otherwise at step 64, the model visualizer 28 is on thelast step of the transition and switches the 3-D graphics library fromperspective rendering to orthogonal rendering mode (step 65).

Next the computer system uses the previously calculated viewport heightH to generate the vertical, and horizontal distances around the POI foran orthogonal projection border which is applied to the 3-D graphicslibrary (step 66). Then the user's viewpoint is returned to the original3-D location it was in at the beginning of the 3-D to 2-D transitionprocess (step 67). Finally, this new scene is rendered with the changedsettings and values (step 68), and the change to an orthogonal 2-D viewis complete (step 69),

A key feature of rendering of a 3-D view of multiple channels isautomated reorientation of the view position and angle. With the freedomof movement provided by a full 3-D environment, the user can select avariety of off-center vantage points with regards to the 3-D view ondisplay 13. Often to provide efficient analysis it is desirable toreorient on a particular point of interest, particularly by achieving a“straight-on” vantage perpendicular to the 3-D view. This is achieved byusing the view geometry exemplified in FIG. 31 and the process in thesoftware operating on computer system 12 for enabling automaticreorientation is shown in FIG. 32.

Using user interface 14, the user starts from any location, illustratedas “1(Start)” and may click on, for purpose of selection, a point ofinterest in the 3-D view on display 13, illustrated as “2(POI)” (step70) and press a button on the graphic user interface 14 in the screen ondisplay 13 or a keyboard button of user controller 13 a (step 71) tohave the system 10 automatically reorient on that point. As large jumpsin rendered views during this transition can be extremely disorientingfrom the user's perspective, the model visualizer 28 smoothly animatesthe transition along the dotting line, labeled “3” (FIG. 31) until theperpendicular target vantage point, labeled “4(End)” is achieved. Firstthe software calculates the virtual distance in 3-D between the startingviewpoint and the POI (step 72). This distance is called Dp.

Next the computer system calculates the point location in 3-D space(considered Pe) that is exactly Dp distance from the POI perpendicularalong either the x, y, or z axis (step 73). The axis chosen is dependenton which button or keystroke the user selected for the desired vantagepoint. Then the computer system calculates the desired final viewingangle (called Ve) that will result in the POI being in the center of thefield of view from location Pe (step 74). The angle Ve will always be 0degrees from the chosen axis and 90 degrees from the remaining two axis.

Next the software calculates the virtual 3-D distance (called Pd)between Ps and Pe (step 75), followed by calculating the angledifference (called Ad) between the starting view angle (called Vs) andVe (step 76). Once the computer system 12 has calculated the start andend locations and angles using the current position, angle, and the POI,the model visualizer 28 enters a view animation and render loop toperform the transition in small steps until the target endpoint isreached. At this point the software checks to see if the currentviewpoint position (called Pc) equals Pe and the current viewpoint angle(called Ac) equals Ae (step 78). If both position and angle are equal tothe final desired values at step 78 then the process is complete (step79). Otherwise the software adjusts Pc to be 1/Nth of Pd closer to Pe(step 80). N is a discrete number of steps predetermined by the softwareover which to perform the transition.

In this example N is 50, but it could be any number greater than orequal to 1. Greater numbers result in a smoother, but longer transition.Additionally a discrete time duration could he used instead, such thatthe transition occurs over a given time period independent of the numberof transition frames that can be rendered by any given system duringthat time. Next the computer system adjusts Ac to be 1/Nth of Ad closerto Ae (step 81). With the new field of view and viewpoint locationvalues calculated, the model visualizer 28 is then ready to render a newscene of the 3-D view (step 82). Then the process repeats back to step78 and continues from there until the final location and angle arereached.

The result is that the model visualizer 28 calculates the necessarymovement path and viewpoints, performing the entire process in a smoothtransition effect so that the user is able to keep focus on their pointof interest and the data around it. This process can he performed toorient the user's position and angle in 3-D space to be alignedperpendicular to the point of interest along any two of the three modelaxis at a time as chosen by the user.

Furthermore in a specific embodiment, this reorientation process can becombined with the perspective to orthogonal (or reverse) view transitionmethod described above whereby selecting a point of interest and makingjust a single click or key press, the user can invoke the computersystem 12 to automatically center on the desired vantage point andtransition to the desired amount of perspective or lack thereof;resulting in a single automatic and fluid transition such as that shownin the example of a view of surfaces 18 h, 18 i, 18 j, and 18 k of FIGS.33-43. This is extremely useful for being able to move around the modelin 3-D perspective to locate an anomaly, and then with a single clicksmoothly transition to a straight-on orthogonal view to perform in-depthanalysis of the data and timing around the event.

Another click and the user can transition to a traditional front-on viewas shown in FIGS. 43-49, thus providing for an efficient and effectiveusage flow of the instrument. This movement can be performed whileremaining in orthogonal (non-perspective mode) as in FIGS. 43-49, or bytransitioning back to 3-D perspective during the movement. Surfaces 18h, 18 i, 18 j, and 18 k are preferably of different color and have asufficient degree of translucency to enable discernment of transitionsin such surfaces when overlaid as shown in FIGS. 33-48. Surfaces 18 i,18 j, and 18 k thus may be visible under surface 18 h and through eachother, but Surfaces 18 i, 8 j, and 18 k are not discernible in FIGS.37-43 due to limitation of non-color presentation.

Referring to FIG. 50, the user interface 14 may include a control panel84 which may appear on the display 13 adjacent to the main rendered Viewon the screen of the 3-D surfaces 18 of multiple channels, as shown inFIG. 12, and operated upon using the user interface's mouse of usercontrols 13 a. The control panel 84 enables the user to understand thepositioning of the viewpoint and signal channels in the 3-D model aswell as provide an interface to customize the properties of thosechannels. This panel shows representations of each channel currentlyincluded in the 3-D model, Each channel has a label 85 that can becustomized by clicking on it and a graphical representation of thesignal 86-92. These are drawn with a color matching that used for thesignal in the 3-D model itself.

Additionally, the symbols may be located vertically within the panel ata location proportional to the channel's y location in the model, andare therefore not necessarily evenly distributed in area 93 of panel 84.Furthermore the symbols are capable of being dragged up and down by theuser to alter the channel's location and the 3-D) model is thenre-generated accordingly. By clicking on the symbols the user can alterfurther properties of the channel such as but not limited to: color,transparency, source, height, graphical representation style (analog,digital, bus, etc.), and numerical base (binary, hex, octal, decimal,etc.).

If an acquisition device 15 connected to this system is capable ofproducing live activity information on the current state of the signals,then the channel symbols in the panel are also used to portray thisinformation. These are exemplified in the diagram as signal conditionsof: rising 86, low 87, high 88, toggling 89, falling 90, a stablehexadecimal bus 91, and a bus with some of its signals changing 92.

The control panel 84 also contains a camera symbol 94 that representsthe user's current viewpoint in the y axis with relation to the 3-D)view. Additionally, the angle of the graphic indicates the current pitchof the view 95. In this way the symbol effectively provides usefulorientation information, particularly when the point of view is veryclose to or within the surfaces 18 on display 13 itself and the mainview rendering may be too close-up or confusing. Lastly, the camerasymbol 94 is draggable in the y axis similar to the signals, such thatthe user can quickly relocate to a new vantage point of the view ofsurfaces 18 on display 13.

As described earlier in connection with FIG. 4, the segment controllermodule 22 segments channels of the data into an array along a zdimension of ordered segments. This array does not necessarily have tobe uniform. The z dimensional ordering of a stack of independent datasegments may be selected, broken, and ordered based on user definedconditions, whereby each segment is comprised of a set of thetime-ordered data. Examples of such conditions are shown in FIGS. 51-57.

In the example of FIG. 51A, all of the data comes from a single originaltime- ordered acquisition, whereby segments can be any part of theoriginal set, overlap, vary in size, and skip data. Some preferred usesinclude choosing segments based on; different acquisitions, consecutivetime slices (FIG. 52), occurrence of a pattern (FIG. 53), specific startand/or stop conditions (FIGS. 54-55), data dependent sub-triggers,source device and combinations thereof. In addition, fake or simulatedreference segments can be specified by the user and generated forinclusion in the set of segments for the purpose of creating a constantbase case or comparison set as shown in FIG. 56 for example. Otherselection and ordering of segments may be used and such selection andordering is not limited to those described herein.

Once the data samples contained in each segment are selected, two otherfactors affect stacking the segments in the z-dimension to create anarray of data to be modeled. The first factor is alignment. The firstsample of each segment does not necessarily have to be aligned in the xdimension (time), such as is shown in FIG. 51B. Alternately, segmentscould be aligned based on other conditions, such as location of samplesmatching a specified pattern, end sample, or a specific real-time timedifferential between segments. The second factor in arranging thesegments is order. While the preferred method is to order the segmentsin the 7 dimension in increasing real-time order, segments may also bereordered based on such conditions as values in the data, originalsource, or acquisition. An example of reordering of an array is shown inFIG. 57.

In addition to analysis of test and measurement data, system 10 may beused to analyze domain specific data. One such example of usefulanalysis that could be assisted by the present invention is videosignals where the acquisition device 15 (FIG. 2) samples a video channelfrom a device or unit 16 under test, or such video signals may be fromanother source to the memory of computer system 12. Video communicationstypically include a vertical sync signal that signifies a new videoframe and a horizontal sync signal that signifies a new horizontal lineof video within that frame. Using these signals as well as the videodata itself, the sampled data can be rearranged such that the inventioncan display a 3-D representation of the live sampled video streamingfrom a unit under test; such as is represented in the example FIG. 58.To achieve this, the acquisition device's trigger is set up to triggeron a rising edge of the vertical sync line.

Additionally, either a hardware sub-trigger or else a softwareprogrammed sub-trigger is set for a rising edge on the horizontal syncline. The vertical sync trigger denotes the first segment of the 2-Darray to be displayed by the invention, while the horizontal synctrigger would be used to “break” or denote the separation of eachsegment to be ordered in the z dimension of the array. In this example,the z order would want to place the first segment furthest away and thelast segment closest to the front of the model as to mimic a top tobottom scanning of a video frame.

Note that this is reversed from the example figure which shows thevertical sync trigger in front simply for demonstration purposes. Thisis a different mode of operation than an acquisition based z dimensionas discussed earlier that would cause a historical aging or scrollingeffect. In this case, instead of an aging model that scrolls, the entiremodel would be updated at once. When a new acquisition containinginformation for a new video frame is available, the entire model wouldupdate again.

The result of such a setup is a full video frame of a time-contiguousacquisition that is then restructured into a 2-D array of data similarto what it actually represents. The system 12 is then able to render itsuch that the actual complete video frame could be seen along with thecontrol and/or other signals. This is extremely useful for determiningthe cause of anomalies or static in the video signal as the human eyecould easily recognize them in the reconstituted frame. Using thetranslucency of different channels, the user can overlay the video datawith various other signals to determine the cause of the problem.Reference planes 46 may further be added to the rendered display.

Furthermore, the system 19 may he extended for use in analysis of datain non time-ordered domains. For example, the system 10 can render inthree dimensions, for purposes of visualization and analysis, afrequency domain representation of some or all of the input data 17 a;for example, as resulting from application of a Fourier transform to thedata. In another embodiment, the system 10 may render the input data 17a as a probability distribution; for example, as a histogram or othernon time-domain representation, though the scope of the invention is notlimited to solely those domains and applications specified herein.

Additionally, while the 3-D modeling herein has been discussed in termsof the three-dimensional Cartesian coordinate system (x,y,z), the system10 may also operate upon input data 17 a, or processed derivationsthereof, to render 3-D representations on display 13 using non-Cartesiancoordinate systems such as: 3-D spherical, cylindrical, or othercoordinate systems, similar to that described, above using a Cartesiancoordinate system.

From the foregoing description it will be apparent that there has beenprovided an improved system and method for three-dimensional renderingof electrical test and measurements signals, as well as for analysis ofvideo and other applications of signals. The illustrated description asa whole is to be taken as illustrative and not as limiting of the scopeof the invention. Such variations, modifications and extensions, whichare within the scope of the invention, will undoubtedly become apparentto those skilled in the art.

This written description uses examples to disclose the invention,including the best mode, and also to enable any person skilled in theart to practice the invention, including making and using any devices orsystems and performing any incorporated methods. The patentable scope ofthe invention is defined by the claims, and may include other examplesthat occur to those skilled in the art. Such other examples are intendedto be within the scope of the claims if they have structural elementsthat do not differ from the literal language of the claims, or if theyinclude equivalent structural elements with insubstantial differencesfrom the literal language of the claims.

What is claimed is:
 1. A system for displaying a three dimensional alvisual representation of one or more signals from a user controllableviewing perspective, the system including: a data input component foracquiring a first set of signal values that each represent a measurementof at least a first one signal over a period of time; and wherein eachof said signal values has an associated time value; a computingcomponent for computing a first three dimensional representation and asecond three dimensional representation of at least said first signalover time by representing each of said signal values with respect to X,Y and Z axes that are located within a virtual three dimensional spaceand that are each oriented in a direction that is orthogonal relative toother said axes; and wherein said first three dimensional representationis computed based upon a first virtual viewing perspective, and whereina said second three dimensional representation is computed based upon asecond virtual viewing perspective, and wherein said first and secondvirtual viewing perspectives are each defined in association withdifferent virtual locations within said three dimensional space, andwherein at least said second virtual perspective is specified by a userof the system while viewing said three dimensional representation fromsaid first viewing perspective.
 2. The system of claim 1 wherein no morethan one of said first viewing perspective and said second viewingperspective is equivalent to an orthogonal and two dimensional viewingperspective of said signals.
 3. The system of claim 1 wherein said threedimensional representation transitions from said first viewingperspective to said second viewing perspective while maintaining a fixedsize of a point of interest within said three dimensionalrepresentation.